# Python中的内置容器
# 一、容器的概念
'''
python 中可包含其他对象的对象，称之为“容器”。容器是一种数据结构。

常用的容器主要分为两种：序列 和 映射。
序列（如：列表、元组等）中，每个元素都有下标，它们是有序的。
映射（如“字典）中，每个元素都有名称（又称”键“），它们是无序的。

除了序列和映射外，还有一种需要注意的容器——”集合“

'''

# 二、字典
'''
符号为：大括号
数据为：键值对  形式出现；字典中的“键”必须是独一无二的
键和值之间用：冒号 隔开

注：一般称冒号前面的为键（key），简称k，冒号后面的为值（value），简称v。合起来称之为“项”。
'''

# 1.定义字典
# 字典是python中唯一的内置映射，和之前所提到的列表、字符串一样，字典也有它的转换函数——dict。
dict1 = {'name': '张三', 'age': 30}
dict2 = {}

# 通过二元组创建字典
dict3 = dict([('name', 'zs'), ('age', 44)])

dict4 = dict(name='ls', age=33, city='beijing')

# ----------------字典操作------------------------------
# 2.新增和修改
dict1['address'] = "shanghai"
print(dict1)
dict1['age'] = 34
print(dict1)

# 3.删除  --使用函数
dict1.pop('age')
print(dict1)

del dict1['address']
print(dict1)

dict1.clear()
print(dict1)

# 4.查找
if 'address' in dict1:
    print(dict1['address'])
else:
    print("not found")

# 5.字典中的一些函数

# 创建字典
new_dict = dict.fromkeys(['name', 'age'])
print(new_dict)
new_dict['name']='wangwu'
print(new_dict)

# get函数
print(dict3['name'])
print(dict3.get('name'))
print(dict3)

# -----字典的遍历---------
# items()函数 把所有的项放在一个列表中
for key,val in dict3.items():
    print(f'key={key},value={val}')

# keys()函数 把所有的键放在一个列表中
for k in dict3.keys():
    print(f'key={k}')

# values()函数 把所有的值放在一个列表中
for val in dict3.values():
    print(f'value={val}')